Any program or group of programs which tells the hardware how it should perform, including operating systems, word processors and applications programs.